x11: Use client pointer as default core pointer for gtk+2 API
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 11 Dec 2015 12:16:13 +0000 (13:16 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Mon, 14 Dec 2015 23:04:20 +0000 (00:04 +0100)
There is no need to fiddle with the master devices list.

https://bugzilla.gnome.org/show_bug.cgi?id=759323

gdk/x11/gdkdisplay-x11.c

index 5816d180020d69a1e58dd036c4b5ea015f9c23d6..2d04e6c57cda1bd3578f7bf910842e8e6b3f34ed 100644 (file)
@@ -1342,7 +1342,6 @@ gdk_x11_display_init_input (GdkDisplay *display)
   GdkDeviceManager *device_manager;
   GdkDevice *device;
   GList *list, *l;
-  gint pass;
 
   display_x11 = GDK_X11_DISPLAY (display);
   device_manager = gdk_display_get_device_manager (display);
@@ -1365,33 +1364,9 @@ gdk_x11_display_init_input (GdkDisplay *display)
 
   g_list_free (list);
 
-  /* Now set "core" pointer to the first
-   * master device that is a pointer,
-   * preferring mice over touchscreens.
-   */
-  list = gdk_device_manager_list_devices (device_manager, GDK_DEVICE_TYPE_MASTER);
-
-  for (pass = 0; pass < 2; pass++)
-    {
-      for (l = list; l; l = l->next)
-        {
-          device = l->data;
-
-          if ((pass == 0 && gdk_device_get_source (device) == GDK_SOURCE_MOUSE) ||
-              (pass == 1 && gdk_device_get_source (device) == GDK_SOURCE_TOUCHSCREEN))
-            {
-              display->core_pointer = device;
-
-              /* Add the core pointer to the devices list */
-              display_x11->input_devices = g_list_prepend (display_x11->input_devices,
-                                                           g_object_ref (display->core_pointer));
-              goto out;
-            }
-        }
-    }
-
-out:
-  g_list_free (list);
+  display->core_pointer = gdk_device_manager_get_client_pointer (device_manager);
+  display_x11->input_devices = g_list_prepend (display_x11->input_devices,
+                                               g_object_ref (display->core_pointer));
 }
 
 static void